//函数类型
//为函数定义类型

function test(a: number, b: number): number {
  return a + b;
}

test(1, 2);

//可选参数和默认参数
//默认参数和可选参数都必须在必须参数的后面
function test1(a: number = 1, b?: number): number {
  return a;
}
test1(2);

function test2(a: number, b: number = 2) {
  return a + b;
}

test2(1);

//剩余参数
//必要参数，默认参数和可选参数有个共同点：它们表示某一个参数。 有时，你想同时操作多个参数，或者你并不知道会有多少参数传递进来。 在JavaScript里，你可以使用 arguments来访问所有传入的参数。
function buildName(firstName: string, ...restOfName: string[]) {
  return firstName + " " + restOfName.join(" ");
}

buildName("hello", "world", "you");
